package com.yzy.fly.annotation;

import com.yzy.fly.api.function.security.ApiDecryptRequestBodyAdvice;
import com.yzy.fly.api.function.security.ApiEncryptResponseBodyAdvice;
import com.yzy.fly.bean.FlyBeanImportSelector;
import com.yzy.fly.bean.FlyBeanRegistrar;
import com.yzy.fly.bean.FlyCustomBeanDefinitionRegistryPostProcessor;
import com.yzy.fly.config.WebMvcConfig;
import com.yzy.fly.config.properties.SecretKeyConfig;
import com.yzy.fly.service.cache.MetadataModelCacheKV;
import org.springframework.context.annotation.Import;

import java.lang.annotation.*;

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
@Import({FlyBeanImportSelector.class,FlyBeanRegistrar.class, WebMvcConfig.class, SecretKeyConfig.class, ApiDecryptRequestBodyAdvice.class, ApiEncryptResponseBodyAdvice.class, FlyCustomBeanDefinitionRegistryPostProcessor.class, MetadataModelCacheKV.class})
public @interface EnableFly {

    String[] scannerPaths() default {};

    String[] apiListenerPaths() default {};

}
